<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SPHinXsys: SPHINXsys/src/shared/bodies/complex_bodies/complex_body.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SPHinXsys
   &#160;<span id="projectnumber">alpha version</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_3dc1dabd28ba78e072d14d3fcfc90454.html">SPHINXsys</a></li><li class="navelem"><a class="el" href="dir_48ea983704c43b6d88c1fa3f4d09e369.html">src</a></li><li class="navelem"><a class="el" href="dir_0a0d9ef1793521534f0094f317758287.html">shared</a></li><li class="navelem"><a class="el" href="dir_f564752dc24125918d43f2c144546267.html">bodies</a></li><li class="navelem"><a class="el" href="dir_02ec5f736644d893e8e8e918680e477d.html">complex_bodies</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">complex_body.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="complex__body_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/* -------------------------------------------------------------------------*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *                              SPHinXsys                                   *</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * --------------------------------------------------------------------------*</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * SPHinXsys (pronunciation: s&#39;finksis) is an acronym from Smoothed Particle    *</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Hydrodynamics for industrial compleX systems. It provides C++ APIs for   *</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * physical accurate simulation and aims to model coupled industrial dynamic *</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * systems including fluid, solid, multi-body dynamics and beyond with SPH  *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * (smoothed particle hydrodynamics), a meshless computational method using *</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * particle discretization.                                                 *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *                                                                          *</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * SPHinXsys is partially funded by German Research Foundation              *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * (Deutsche Forschungsgemeinschaft) DFG HU1527/6-1, HU1527/10-1                *</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * and HU1527/12-1.                                                         *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *                                                                           *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * Portions copyright (c) 2017-2020 Technical University of Munich and      *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * the authors&#39; affiliations.                                               *</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> *                                                                           *</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may   *</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * not use this file except in compliance with the License. You may obtain a *</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0.        *</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *                                                                           *</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * --------------------------------------------------------------------------*/</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#ifndef COMPLEX_BODY_H</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#define COMPLEX_BODY_H</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="base__body_8h.html">base_body.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="base__body__part_8h.html">base_body_part.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="base__geometry_8h.html">base_geometry.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_s_p_h.html">SPH</a></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_secondary_structure.html">   47</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_secondary_structure.html">SecondaryStructure</a></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        <span class="keyword">explicit</span> <a class="code" href="class_s_p_h_1_1_secondary_structure.html">SecondaryStructure</a>(){};</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="class_s_p_h_1_1_secondary_structure.html">SecondaryStructure</a>(){};</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildParticleConfiguration(<a class="code" href="namespace_s_p_h.html#a720b2214c518c3299a6d4895dacddc50">ParticleConfiguration</a> &amp;particle_configuration) = 0;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    };</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_body.html">   61</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_tree_body.html">TreeBody</a> : <span class="keyword">public</span> <a class="code" href="class_s_p_h_1_1_secondary_structure.html">SecondaryStructure</a>, <span class="keyword">public</span> <a class="code" href="class_s_p_h_1_1_real_body.html">RealBody</a></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html">Branch</a>;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <a class="code" href="class_s_p_h_1_1_unique_ptr_keepers.html">UniquePtrKeepers&lt;Branch&gt;</a> branches_ptr_keeper_;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_body.html#ac71ae614d06d3f8a9e20bdcb34d85677">   70</a></span>&#160;        StdVec&lt;Branch *&gt; <a class="code" href="class_s_p_h_1_1_tree_body.html#ac71ae614d06d3f8a9e20bdcb34d85677">branches_</a>;    </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_body.html#a7fd35675ef7f76aa7ef5b0a3d234a1d2">   71</a></span>&#160;        <a class="code" href="namespace_s_p_h.html#abae56fd7f25f13487c7943ce4681d0ce">IndexVector</a> <a class="code" href="class_s_p_h_1_1_tree_body.html#a7fd35675ef7f76aa7ef5b0a3d234a1d2">branch_locations_</a>; </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordtype">size_t</span> last_branch_id_;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html">Branch</a> *root_;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keyword">explicit</span> <a class="code" href="class_s_p_h_1_1_tree_body.html">TreeBody</a>(<a class="code" href="class_s_p_h_1_1_s_p_h_system.html">SPHSystem</a> &amp;sph_system, SharedPtr&lt;Shape&gt; shape_ptr);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="class_s_p_h_1_1_tree_body.html">TreeBody</a>(){};</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        Branch *createANewBranch(<span class="keywordtype">size_t</span> parent_id)</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        {</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordflow">return</span> branches_ptr_keeper_.<a class="code" href="class_s_p_h_1_1_unique_ptr_keepers.html#a2ed6238b78526f4bfb1597ce0ca7e783">createPtr</a>&lt;Branch&gt;(parent_id, <span class="keyword">this</span>);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        };</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keywordtype">size_t</span> BranchLocation(<span class="keywordtype">size_t</span> particle_idx);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        Branch *LastBranch() { <span class="keywordflow">return</span> <a class="code" href="class_s_p_h_1_1_tree_body.html#ac71ae614d06d3f8a9e20bdcb34d85677">branches_</a>[last_branch_id_]; };</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_tree_body.html#af5c54520d0362f3c1cd3bd746f94f07a">buildParticleConfiguration</a>(<a class="code" href="namespace_s_p_h.html#a720b2214c518c3299a6d4895dacddc50">ParticleConfiguration</a> &amp;particle_configuration) <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keywordtype">size_t</span> ContainerSize() { <span class="keywordflow">return</span> <a class="code" href="class_s_p_h_1_1_tree_body.html#ac71ae614d06d3f8a9e20bdcb34d85677">branches_</a>.size(); };</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    };</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_body_1_1_branch.html">   96</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html">TreeBody::Branch</a> : <span class="keyword">public</span> <a class="code" href="class_s_p_h_1_1_edge.html">Edge</a>&lt;size_t, IndexVector&gt;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    {</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keyword">explicit</span> <a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html#af16bbc7e6f20d6e5003004406f16abeb">Branch</a>(<a class="code" href="class_s_p_h_1_1_tree_body.html">TreeBody</a> *tree);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html#af16bbc7e6f20d6e5003004406f16abeb">Branch</a>(<span class="keywordtype">size_t</span> parent_id, <a class="code" href="class_s_p_h_1_1_tree_body.html">TreeBody</a> *tree);</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_body_1_1_branch.html#ac36ad72eaeb97a9aabc908428e17fac4">  103</a></span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html">Branch</a>(){};</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        Vecd <a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html#ac36ad72eaeb97a9aabc908428e17fac4">end_direction_</a>; </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_body_1_1_branch.html#a660caf9aee352e4cec8443b8c511aca0">  109</a></span>&#160;        <a class="code" href="namespace_s_p_h.html#abae56fd7f25f13487c7943ce4681d0ce">IndexVector</a> <a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html#a660caf9aee352e4cec8443b8c511aca0">inner_particles_</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_body_1_1_branch.html#afdbeb756e3b7c91c062af8b70f4af1a8">  110</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_s_p_h_1_1_tree_body_1_1_branch.html#afdbeb756e3b7c91c062af8b70f4af1a8">is_terminated_</a>; </div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    };</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_tree_terminates.html">  117</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_tree_terminates.html">TreeTerminates</a> : <span class="keyword">public</span> <a class="code" href="class_s_p_h_1_1_body_part_by_particle.html">BodyPartByParticle</a></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    {</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <a class="code" href="class_s_p_h_1_1_tree_body.html">TreeBody</a> &amp;tree_;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="keyword">explicit</span> <a class="code" href="class_s_p_h_1_1_tree_terminates.html">TreeTerminates</a>(<a class="code" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a> &amp;sph_body);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="class_s_p_h_1_1_tree_terminates.html">TreeTerminates</a>(){};</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    };</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor">#endif // COMPLEX_BODY_H</span></div><div class="ttc" id="class_s_p_h_1_1_edge_html"><div class="ttname"><a href="class_s_p_h_1_1_edge.html">SPH::Edge</a></div><div class="ttdoc">template base class of linear structure only with topology information. Note that a edge is defined t...</div><div class="ttdef"><b>Definition:</b> base_geometry.h:146</div></div>
<div class="ttc" id="namespace_s_p_h_html_abae56fd7f25f13487c7943ce4681d0ce"><div class="ttname"><a href="namespace_s_p_h.html#abae56fd7f25f13487c7943ce4681d0ce">SPH::IndexVector</a></div><div class="ttdeci">StdVec&lt; size_t &gt; IndexVector</div><div class="ttdef"><b>Definition:</b> sph_data_containers.h:37</div></div>
<div class="ttc" id="base__body__part_8h_html"><div class="ttname"><a href="base__body__part_8h.html">base_body_part.h</a></div><div class="ttdoc">This is the base classes of body parts. </div></div>
<div class="ttc" id="class_s_p_h_1_1_body_part_by_particle_html"><div class="ttname"><a href="class_s_p_h_1_1_body_part_by_particle.html">SPH::BodyPartByParticle</a></div><div class="ttdoc">A body part with a collection of particles. </div><div class="ttdef"><b>Definition:</b> base_body_part.h:64</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_html_af5c54520d0362f3c1cd3bd746f94f07a"><div class="ttname"><a href="class_s_p_h_1_1_tree_body.html#af5c54520d0362f3c1cd3bd746f94f07a">SPH::TreeBody::buildParticleConfiguration</a></div><div class="ttdeci">virtual void buildParticleConfiguration(ParticleConfiguration &amp;particle_configuration) override</div><div class="ttdef"><b>Definition:</b> complex_body.cpp:23</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_1_1_branch_html_ac36ad72eaeb97a9aabc908428e17fac4"><div class="ttname"><a href="class_s_p_h_1_1_tree_body_1_1_branch.html#ac36ad72eaeb97a9aabc908428e17fac4">SPH::TreeBody::Branch::end_direction_</a></div><div class="ttdeci">Vecd end_direction_</div><div class="ttdef"><b>Definition:</b> complex_body.h:103</div></div>
<div class="ttc" id="base__body_8h_html"><div class="ttname"><a href="base__body_8h.html">base_body.h</a></div><div class="ttdoc">This is the base classes of SPH bodies. The real body is for that with cell linked list and the ficti...</div></div>
<div class="ttc" id="namespace_s_p_h_html_a720b2214c518c3299a6d4895dacddc50"><div class="ttname"><a href="namespace_s_p_h.html#a720b2214c518c3299a6d4895dacddc50">SPH::ParticleConfiguration</a></div><div class="ttdeci">StdLargeVec&lt; Neighborhood &gt; ParticleConfiguration</div><div class="ttdef"><b>Definition:</b> neighbor_relation.h:66</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_html_ac71ae614d06d3f8a9e20bdcb34d85677"><div class="ttname"><a href="class_s_p_h_1_1_tree_body.html#ac71ae614d06d3f8a9e20bdcb34d85677">SPH::TreeBody::branches_</a></div><div class="ttdeci">StdVec&lt; Branch * &gt; branches_</div><div class="ttdef"><b>Definition:</b> complex_body.h:70</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_html"><div class="ttname"><a href="class_s_p_h_1_1_tree_body.html">SPH::TreeBody</a></div><div class="ttdoc">The tree is composed of a root (the first branch) and other branch generated sequentially. </div><div class="ttdef"><b>Definition:</b> complex_body.h:61</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_1_1_branch_html"><div class="ttname"><a href="class_s_p_h_1_1_tree_body_1_1_branch.html">SPH::TreeBody::Branch</a></div><div class="ttdoc">Each branch (except the root) has a parent and several children, and geometric information. It is a realized edge and has multi inner particles. The first is the last particle from the parent or root, and the last is the first particle of all its child branches. Many connected branches compose a tree. </div><div class="ttdef"><b>Definition:</b> complex_body.h:96</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_html_a7fd35675ef7f76aa7ef5b0a3d234a1d2"><div class="ttname"><a href="class_s_p_h_1_1_tree_body.html#a7fd35675ef7f76aa7ef5b0a3d234a1d2">SPH::TreeBody::branch_locations_</a></div><div class="ttdeci">IndexVector branch_locations_</div><div class="ttdef"><b>Definition:</b> complex_body.h:71</div></div>
<div class="ttc" id="class_s_p_h_1_1_secondary_structure_html"><div class="ttname"><a href="class_s_p_h_1_1_secondary_structure.html">SPH::SecondaryStructure</a></div><div class="ttdoc">Abstract class as interface for all secondary structures. Currently, it provides interface on buildin...</div><div class="ttdef"><b>Definition:</b> complex_body.h:47</div></div>
<div class="ttc" id="base__geometry_8h_html"><div class="ttname"><a href="base__geometry_8h.html">base_geometry.h</a></div><div class="ttdoc">Shape is the base class for all geometries. </div></div>
<div class="ttc" id="class_s_p_h_1_1_unique_ptr_keepers_html"><div class="ttname"><a href="class_s_p_h_1_1_unique_ptr_keepers.html">SPH::UniquePtrKeepers</a></div><div class="ttdoc">A wrapper to provide an ownership for a vector of base class pointers which point to derived objects...</div><div class="ttdef"><b>Definition:</b> ownership.h:127</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_1_1_branch_html_a660caf9aee352e4cec8443b8c511aca0"><div class="ttname"><a href="class_s_p_h_1_1_tree_body_1_1_branch.html#a660caf9aee352e4cec8443b8c511aca0">SPH::TreeBody::Branch::inner_particles_</a></div><div class="ttdeci">IndexVector inner_particles_</div><div class="ttdef"><b>Definition:</b> complex_body.h:109</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_terminates_html"><div class="ttname"><a href="class_s_p_h_1_1_tree_terminates.html">SPH::TreeTerminates</a></div><div class="ttdoc">A body part with the collection of particles as the terminates of the tree. </div><div class="ttdef"><b>Definition:</b> complex_body.h:117</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_1_1_branch_html_afdbeb756e3b7c91c062af8b70f4af1a8"><div class="ttname"><a href="class_s_p_h_1_1_tree_body_1_1_branch.html#afdbeb756e3b7c91c062af8b70f4af1a8">SPH::TreeBody::Branch::is_terminated_</a></div><div class="ttdeci">bool is_terminated_</div><div class="ttdef"><b>Definition:</b> complex_body.h:110</div></div>
<div class="ttc" id="class_s_p_h_1_1_s_p_h_body_html"><div class="ttname"><a href="class_s_p_h_1_1_s_p_h_body.html">SPH::SPHBody</a></div><div class="ttdoc">SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...</div><div class="ttdef"><b>Definition:</b> base_body.h:61</div></div>
<div class="ttc" id="class_s_p_h_1_1_s_p_h_system_html"><div class="ttname"><a href="class_s_p_h_1_1_s_p_h_system.html">SPH::SPHSystem</a></div><div class="ttdoc">The SPH system managing objects in the system level. </div><div class="ttdef"><b>Definition:</b> sph_system.h:46</div></div>
<div class="ttc" id="class_s_p_h_1_1_real_body_html"><div class="ttname"><a href="class_s_p_h_1_1_real_body.html">SPH::RealBody</a></div><div class="ttdoc">Derived body with inner particle configuration or inner interactions. After construction, the particle and material must be specified. </div><div class="ttdef"><b>Definition:</b> base_body.h:182</div></div>
<div class="ttc" id="class_s_p_h_1_1_tree_body_1_1_branch_html_af16bbc7e6f20d6e5003004406f16abeb"><div class="ttname"><a href="class_s_p_h_1_1_tree_body_1_1_branch.html#af16bbc7e6f20d6e5003004406f16abeb">SPH::TreeBody::Branch::Branch</a></div><div class="ttdeci">Branch(TreeBody *tree)</div><div class="ttdef"><b>Definition:</b> complex_body.cpp:226</div></div>
<div class="ttc" id="class_s_p_h_1_1_unique_ptr_keepers_html_a2ed6238b78526f4bfb1597ce0ca7e783"><div class="ttname"><a href="class_s_p_h_1_1_unique_ptr_keepers.html#a2ed6238b78526f4bfb1597ce0ca7e783">SPH::UniquePtrKeepers::createPtr</a></div><div class="ttdeci">DerivedType * createPtr(ConstructorArgs &amp;&amp;...args)</div><div class="ttdef"><b>Definition:</b> ownership.h:133</div></div>
<div class="ttc" id="namespace_s_p_h_html"><div class="ttname"><a href="namespace_s_p_h.html">SPH</a></div><div class="ttdef"><b>Definition:</b> solid_body_supplementary.cpp:9</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
